/*

This file is part of Ext JS 4

Copyright (c) 2011 Sencha Inc

Contact:  http://www.sencha.com/contact

GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.  Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.

If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.

*/
Ext.require(['*']);



Ext.define('itemModel', {
	extend: 'Ext.data.Model',
	fields: [
		{name: 'nombreItem', type: 'string'},
		{name: 'idItem', type: 'string'},
		{name: 'codItem', type: 'string'},
		{name: 'complejidadItem', type: 'string'},
		{name: 'descripcionItem', type: 'string'},
		{name: 'idTipoItem', type: 'string'},
		{name: 'nombreTipoItem', type: 'string'},
		{name: 'versionItem', type: 'string'},
		{name: 'estadoItem', type: 'string'},
		{name: 'revisarItem', type: 'string'},
		{name: 'modificarItem', type: 'string'},
	]
});


Ext.define('itemModelPrincipal', {
	extend: 'Ext.data.Model',
	fields: [
		{name: 'nombreItem', type: 'string'},
		{name: 'idItem', type: 'string'},
		{name: 'codItem', type: 'string'},
		{name: 'complejidadItem', type: 'string'},
		{name: 'descripcionItem', type: 'string'},
		{name: 'idTipoItem', type: 'string'},
		{name: 'nombreTipoItem', type: 'string'},
		{name: 'versionItem', type: 'string'},
		{name: 'estadoItem', type: 'string'},
		{name: 'revisarItem', type: 'string'},
		{name: 'modificarItem', type: 'string'},
		{name: 'mostrarTabRelacion', type: 'boolean'},
	]
});


Ext.define('itemModelHistorial', {
	extend: 'Ext.data.Model',
	fields: [
		{name: 'nombreItem', type: 'string'},
		{name: 'idItem', type: 'string'},
		{name: 'codItem', type: 'string'},
		{name: 'complejidadItem', type: 'string'},
		{name: 'descripcionItem', type: 'string'},
		{name: 'idTipoItem', type: 'string'},
		{name: 'nombreTipoItem', type: 'string'},
		{name: 'versionItem', type: 'string'},
		{name: 'estadoItem', type: 'string'},
		{name: 'revisarItem', type: 'boolean'},
		{name: 'modificarItem', type: 'boolean'},
	]
});

Ext.define('itemModelRevivir', {
	extend: 'Ext.data.Model',
	fields: [
		{name: 'nombreItem', type: 'string'},
		{name: 'idItem', type: 'string'},
		{name: 'codItem', type: 'string'},
		{name: 'complejidadItem', type: 'string'},
		{name: 'descripcionItem', type: 'string'},
		{name: 'idTipoItem', type: 'string'},
		{name: 'nombreTipoItem', type: 'string'},
		{name: 'versionItem', type: 'string'},
		{name: 'estadoItem', type: 'string'},
		{name: 'revisarItem', type: 'boolean'},
		{name: 'modificarItem', type: 'boolean'},
	]
});





Ext.define('modelTipoItems', {
	extend: 'Ext.data.Model',
	proxy : {
		type : 'ajax',
	
		
		api: {
                read: '/items/viewTipoItems'
		},
	
		reader: {
				
                type: 'json',
                successProperty: 'success',
                root: 'tiposItems',
                messageProperty: 'message'
            }
	},
	
	fields: [
		{type: 'int' , name: 'idTipoItem'},
		{type: 'string', name: 'nombreTipoItem'}
		
			]
});




Ext.define('DesarrolloItemLiveSearchGridPanel', {
    extend: 'Ext.ux.LiveSearchGridPanel',
    
    
    
    initComponent: function() {
        
        //Ext.Msg.alert('Estoy en el initComponet del live!!!');
        var me = this;
        me.tbar = ['Buscar',{
                 xtype: 'textfield',
                 name: 'searchField',
                 hideLabel: true,
                 width: 200,
                 listeners: {
                     change: {
                         fn: me.onTextFieldChange,
                         scope: this,
                         buffer: 100
                     }
                 }
            }, {
                xtype: 'button',
                text: '<',
                tooltip: 'Anterior',
                handler: me.onPreviousClick,
                scope: me
            },{
                xtype: 'button',
                text: '>',
                tooltip: 'Siguiente',
                handler: me.onNextClick,
                scope: me
            }, '-', {
                xtype: 'checkbox',
                hideLabel: true,
                margin: '0 0 0 4px',
                handler: me.regExpToggle,
                scope: me                
            }, 'Expresión Regular', {
                xtype: 'checkbox',
                hideLabel: true,
                margin: '0 0 0 4px',
                handler: me.caseSensitiveToggle,
                scope: me
            }, 'Detectar Mayúsculas'];
        
        me.callParent(arguments);
    }
});


 Ext.define('Ext.form.ClosableFieldSet', {
	extend: 'Ext.form.FieldSet',
	alias: 'widget.closablefieldset'  
});



Ext.define('App.view.DesarrolloItem', {
	extend: 'Ext.panel.Panel',
    alias: 'widget.tabfirst',
    //title: 'Administación de Proyectos',
	layout:'anchor',

	initComponent: function () {
	
		//para que funcionen los toolTips
        Ext.QuickTips.init();
        
        
        this.myIdFase = idFaseAux;
        this.myNombreFase = nombreFaseAux;
        this.myNombreProyecto = nombreProyectoAux;
        
        id: 'id_vista_items' + this.myIdFase,
        
        
		this.store = Ext.create('Ext.data.Store', {
			storeId: 'itemsFaseStorePrincipal',
			model: 'itemModelPrincipal',
			proxy: {
				type: 'ajax',
				url: '/items/traerItems',
				reader: {
					type: 'json',
					root: 'items'
				}
			},
			idFase: this.myIdFase,
			autoLoad: {start: 0, limit: 25, params:{idFase: this.myIdFase}} 
			
		});

        this.myIdFase = idFaseAux;
        this.myIdTabItem = idTabItem;
        this.grouping = Ext.create('Ext.grid.feature.Grouping', {
			groupHeaderTpl: 'Fase: {name}',
			enableGroupingMenu: false
		}); 
		
		
		this.autorizacionesJson = null;
		//hacemos la llamada ajax para obtener la autorizacion de funcionalidades de usuarios
		Ext.Ajax.request(
		{
			url:'/autorizacion/desarrolloItems',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			params: { idFase: this.myIdFase},
			async    : false,
			callback : function(opts, success, response) {	
				obj = Ext.decode(response.responseText);
				this.autorizacionesJson = obj.autorizacionesJson;
				
			}
			
		});
		
		
			
		//creamos varibales para que los IDs no entren en conflicto
		this.idBtonCrearItem = 'btn_grid_crear_item' + this.myIdFase;
		this.idBtonAprobarItem = 'btn_grid_aprobar_item' + this.myIdFase;
		this.idBtonImpactoItem = 'btn_grid_impacto_item' + this.myIdFase;
		this.idBtonEditarItem = 'btn_grid_editar_item' + this.myIdFase;
		this.idBtonEliminarItem = 'btn_grid_eliminar_item' + this.myIdFase;
		this.idBtonVerItem = 'btn_grid_ver_item' + this.myIdFase;
		this.idBtonConfirmarItem = 'btn_grid_confirmar_item' + this.myIdFase;
		this.idBtonHistorialItem = 'btn_grid_historial_item' + this.myIdFase;
		this.idBtonRevivirItem = 'btn_grid_revivir_item' + this.myIdFase;
		this.idBtonRelacionesItem = 'btn_grid_relaciones' + this.myIdFase;
		this.idBtonRevisarItem = 'btn_grid_revisar_item' + this.myIdFase;
		this.idBtonAprobarItemInside = 'id_aprobar_btnInside' + this.myIdFase;
		this.idBtonRechazarItemInside = 'id_rechazar_btnInside' + this.myIdFase;
		this.idBtonAprobarRevisionItemInside = 'id_aprobar_revision_btnInside' + this.myIdFase;
		
		this.idBtonRechazarRevisionItemInside = 'id_rechazar_revision_btnInside' + this.myIdFase;
		
		
		//toolBar
		this.Tblgrid = Ext.create('Ext.toolbar.Toolbar',{
			defaults: { hidden: true },
			items : [
				{
					xtype : 'button',
					id : this.idBtonCrearItem,//'btn_grid_crear_item' + this.myIdProyecto,
					itemId : this.idBtonCrearItem,//'btn_grid_crear_item' + this.myIdProyecto,
					text : 'Crear Item',
					iconCls : 'icon_button_add',
					disabled : false,
					tooltip : 'Crear un nuevo Item en la Fase Seleccionada...',
					scope : this,
					hidden: this.autorizacionesJson.CREACION_ITEM,
					handler : this.CrearItemRecordSelect
				},
				{
					xtype : 'tbseparator'
				},
				{
					xtype : 'button',
					id : this.idBtonEditarItem,//'btn_grid_editar_item',
					itemId : this.idBtonEditarItem,//'btn_grid_editar_item',
					text : 'Editar Item',
					icon:'static/images/edit.png',
					disabled : true,
					tooltip : 'Editar Item seleccionado...',
					scope : this,
					hidden: this.autorizacionesJson.EDICION_ITEM,
					handler : this.EditarItemRecordSelect
				},
				{
					xtype : 'tbseparator'
				},
				{
					xtype : 'button',
					id : this.idBtonEliminarItem,//'btn_grid_eliminar_item',
					itemId : this.idBtonEliminarItem,//'btn_grid_eliminar_item',
					text : 'Eliminar Item',
					icon:'static/images/delete.png',
					disabled : true,
					tooltip : 'Eliminar Item seleccionado...',
					scope : this,
					hidden: this.autorizacionesJson.ELIMINACION_ITEM,
					handler : this.EliminarItemRecordSelect
				}
			]
		});
    
		//agregado por Victor
		this.Tblgrid2 = Ext.create('Ext.toolbar.Toolbar',{
			defaults: { hidden: true },
			hidden: true,
			items : [
				{
					xtype : 'button',
					id : this.idBtonRelacionesItem,//'btn_grid_relaciones',
					itemId : this.idBtonRelacionesItem,//'btn_grid_relaciones',
					text : 'Relaciones',
					iconCls : 'icon_button_tab',
					disabled : true,
					tooltip : 'Administra relaciones para el item seleccionado',
					scope : this,
					//hidden: this.autorizacionesJson.VER_RELACION,
					handler : this.RelacionesRecordSelect
				},{
					xtype : 'tbseparator'
				}
			]
		});
		
		//toolbBar para Confirmaciones y Aprobaciones
		this.TblConfirAprob = Ext.create('Ext.toolbar.Toolbar',{
			defaults: { hidden: true },
			items : [
				{
					xtype : 'button',
					id : this.idBtonVerItem,//'btn_grid_ver_item',
					itemId : this.idBtonVerItem,//'btn_grid_ver_item',
					text : 'Ver Item',
					icon:'static/images/view.png',
					disabled : true,
					tooltip : 'Ver item seleccionado',
					scope : this,
					hidden: this.autorizacionesJson.VER_ITEM,
					handler : this.VerItemRecordSelect
				},
				{
					xtype : 'tbseparator'
				},
				{
					xtype : 'button',
					id : this.idBtonConfirmarItem,//'btn_grid_confirmar_item',
					itemId : this.idBtonConfirmarItem,//'btn_grid_confirmar_item',
					text : 'Confirmar Item',
					icon:'static/images/confirmar.png',
					disabled : true,
					tooltip : 'Confirmar Item seleccionado...',
					scope : this,
					hidden: this.autorizacionesJson.CONFIRMAR_ITEM,
					handler : this.ConfirmarItemRecordSelect
				},
				{
					xtype : 'tbseparator'
				},
				{
					text: 'Aprobar Item',
					id : this.idBtonAprobarItem,
					disabled: true,
					hidden: this.autorizacionesJson.APROBAR_ITEM,
					icon:'static/images/aprobar.png',
					menu: {
						xtype: 'menu',
						plain: true,
						 
						items: {
							xtype: 'buttongroup',
							title: 'Opciones',
							//columns: 1,
							defaults: {
								xtype: 'button'
							},
							items: 
							[
								{
									text: 'Aprobar',
									//id:'id_aprobar_btn',
									id: this.idBtonAprobarItemInside,
									tooltip : 'Aprobar Item',
									scope : this,
									handler : this.AprobarItemRecordSelect,
									disabled: true
								},
								{
									//iconCls: 'Rechazar',
									text: 'Rechazar',
									width: 'auto',
									//id:'id_rechazar_btn',
									id: this.idBtonRechazarItemInside,
									tooltip : 'Rechazar Item',
									scope : this,
									handler : this.RechazarItemRecordSelect,
									disabled: true
								}
							]
						}
					}
				},
				{
					text: 'Revisar Item',
					id : this.idBtonRevisarItem,
					disabled: true,
					hidden: this.autorizacionesJson.REVISAR_ITEM,
					icon:'static/images/revision.png',
					menu: {
						xtype: 'menu',
						plain: true,
						 
						items: {
							xtype: 'buttongroup',
							title: 'Opciones',
							//columns: 1,
							defaults: {
								xtype: 'button'
							},
							items: 
							[
								{
									text: 'Aprobar Revisión',
									//id:'id_aprobar_revision_btn',
									id:this.idBtonAprobarRevisionItemInside,
									tooltip : 'El item no necesita ser modificado...',
									scope : this,
									handler : this.AprobarRevisionItemRecordSelect,
									disabled: true
								},
								{
									//iconCls: 'Rechazar',
									text: 'Rechazar Revisión',
									width: 'auto',
									//id:'id_rechazar_revision_btn',
									id:this.idBtonRechazarRevisionItemInside,
									tooltip : 'Marcar para modificación el item...',
									scope : this,
									handler : this.RechazarRevisionItemRecordSelect,
									disabled: true
								}
							]
						}
					}
				},
				{
					text: 'Impacto',
					id : this.idBtonImpactoItem,
					disabled: true,
					hidden: this.autorizacionesJson.VER_IMPACTO_ITEM,
					icon:'static/images/impacto.png',
					menu: {
						xtype: 'menu',
						plain: true,
						 
						items: {
							xtype: 'buttongroup',
							title: 'Opciones',
							//columns: 1,
							defaults: {
								xtype: 'button'
							},
							items: 
							[
								{
									text: 'Atrás',
									//id:'id_impacto_atras_btn',
									tooltip : 'Cálculo del Impacto hacia atrás...',
									scope : this,
									handler : this.ImpactoAtrasItemRecordSelect
								},
								{
									text: 'Total',
									width: 'auto',
									//id:'id_impacto_total_btn',
									tooltip : 'Cálculo del Impacto Total...',
									scope : this,
									handler : this.ImpactoTotalItemRecordSelect
								},
								{
									text: 'Adelante',
									width: 'auto',
									//id:'id_impacto_adelante_btn',
									tooltip : 'Cálculo del Impacto hacia adelante...',
									scope : this,
									handler : this.ImpactoAdelanteItemRecordSelect
								}
							]
						}
					}
				}
				
			]
		});

		//toolBar de Revevir y Reversiones
		this.TblReviRever = Ext.create('Ext.toolbar.Toolbar',{
			defaults: { hidden: true },
			items : [
				{
					xtype : 'button',
					id : this.idBtonHistorialItem,//'btn_grid_historial_item',
					itemId : this.idBtonHistorialItem,//'btn_grid_historial_item',
					text : 'Historial',
					icon:'static/images/history.png',
					disabled : true,
					tooltip : 'Ver Historial...',
					scope : this,
					hidden: this.autorizacionesJson.HISTORIAL_ITEM,
					handler : this.HistorialItemRecordSelect
				},
				{
					xtype : 'tbseparator'
				},
				{
					xtype : 'button',
					id : this.idBtonRevivirItem,//'btn_grid_revivir_item',
					itemId : this.idBtonRevivirItem,//'btn_grid_revivir_item',
					text : 'Revivir Items',
					icon:'static/images/revivir.png',
					//disabled : true,
					tooltip : 'Revivir Item eliminados de la Fase...',
					scope : this,
					hidden: this.autorizacionesJson.REVIVIR_ITEM,
					handler : this.RevivirItems
				}
			]
		});
	
		this.grid = Ext.create(/*'Ext.grid.Panel'*/ 'DesarrolloItemLiveSearchGridPanel', {
			
			title: this.myNombreProyecto + ' | ' + this.myNombreFase + ' | ' + 'Items',
			frame : true,
			store : this.store,
			stripeRows : true,
			columnLines: true,
			loadMask : true,
			//width : 550,
			//height : 400,
			anchor: '100% 100%', 
			//features: [this.grouping],
			dockedItems : [this.Tblgrid,this.Tblgrid2,this.TblConfirAprob,this.TblReviRever,
				Ext.create('Ext.ux.StatusBar', {
				defaultText: this.defaultStatusText,
				name: 'searchStatusBar'
				})
			],
			columns: 
			[
				{
					//text: 'id',
					hidden: true,
					dataIndex: 'idItem',
					flex: 1
				},
				
				{
					//text: 'id',
					hidden: true,
					dataIndex: 'idTipoItem',
					flex: 1
				},
				{
					text: 'Código',
					dataIndex: 'codItem',
					flex: 1
				},
				{
					text: 'Nombre Item',
					dataIndex: 'nombreItem',
					flex: 1
				},
				{
					text: 'Complejidad',
					dataIndex: 'complejidadItem',
					flex: 1
				},
				{
					text: 'Version',
					dataIndex: 'versionItem',
					flex: 1
				},
				{
					text: 'Tipo Item',
					dataIndex: 'nombreTipoItem',
					flex: 1
				},
				{
					text: 'Estado',
					dataIndex: 'estadoItem',
					flex: 1
				},
				{
					text: 'Revisar',
					dataIndex: 'revisarItem',
				},
				{
					text: 'Modificar',
					dataIndex: 'modificarItem',
				},
				{
					xtype:'actioncolumn',
					header: 'Relaciones',
					align: 'center',
					items: [
						{
							icon:'static/images/relaciones.png',
							scope:this,
							tooltip:'Administrar Relaciones del Item seleccionado..',
							handler : function(grid, rowIndex, colIndex){
								
								var record = grid.store.getAt(rowIndex);
								registroSeleccionado = grid.store.getAt(rowIndex).data.idItem;
								nombreItem = grid.store.getAt(rowIndex).data.nombreItem;
								var cls = "App.view.Relaciones";
								//var id = 'Relaciones' + registroSeleccionado;
								var codItem = grid.store.getAt(rowIndex).data.codItem
								var codItemCadena = codItem.toString()
								//var CodItemCadenaSinEspacio = codItemCadena.replaceAll(" ", "");   
								/*while (codItem.toString().indexOf(' ') != -1){
									   codItem = codItem.toString().replace(' ','');
								}*/
								codItemCadena = codItemCadena.split(' ').join('')
								
								var id = 'Relaciones' + codItemCadena + this.myIdFase ;

								console.log('id en desarrollo itemsssss');
								console.log(id);

								this.tabs = Ext.getCmp('tabsGlobales');
								var tab = this.tabs.child('#' + id);

								
								if(!tab){
									if (grid.store.getAt(rowIndex).data.estadoItem == 'ACTIVO'){
										allowAddRelacion = false;
									}else{
										allowAddRelacion = true;
									}
									
									idItemAux = registroSeleccionado;
									nombreItemAux = nombreItem;
									idTabItem = this.myIdTabItem;
									idFaseAux = this.myIdFase;
									nombreFaseAux = this.myNombreFase;
									//Ext.Msg.alert('Entre en el if de !tab');
									tab = this.tabs.add(Ext.create(cls, {
										itemId: id,
										title: 'Relaciones | ' + nombreItem,//node.raw.text,
										closable: true
									}));	
									this.tabs.setActiveTab(tab)	
									console.log('tab.id en itemmm')
									console.log(tab.itemId)
									
								}else{
									tab.myIdItem = registroSeleccionado;
									tab.store.idItem = registroSeleccionado;
									this.tabs.setActiveTab(tab)
								}
							},
							style:'margin-left:5px',
							getClass: function(value,metadata,record){
								console.log(value);
								console.log(metadata);
								console.log(record);
								this.permitir = record.get('mostrarTabRelacion');
								if (this.permitir == true ) {
									return 'x-grid-center-icon';
								} else {
								  	return 'x-hide-display';
								}
							}
						}	
					]
				}
			], 
			bbar: Ext.create('Ext.PagingToolbar', {
				store : this.store,
				displayInfo : true,
				displayMsg : 'Mostrando registros {0} - {1} de {2}',
				emptyMsg : "Sin registros para mostrar",
				
				doRefresh : function(){
					var store = this.store;
					store.loadPage(store.currentPage, 
						{
							params: 
							{
								idFase: store.idFase
							}
						}
					);
				},
			}),
			listeners:{
				scope:this,     	
				'selectionchange': function(view, records) {
					
					if(this.grid.getSelectionModel().getSelection()[0] != null){
						Ext.getCmp(this.idBtonVerItem).setDisabled(false);	
						Ext.getCmp(this.idBtonImpactoItem).setDisabled(false);
					
						if( this.grid.getSelectionModel().getSelection()[0].data.estadoItem == 'ACTIVO' ){
						
							Ext.getCmp(this.idBtonEditarItem).setDisabled(false);	
							Ext.getCmp(this.idBtonConfirmarItem).setDisabled(false);
							
							Ext.getCmp(this.idBtonEliminarItem).setDisabled(false);
							Ext.getCmp( this.idBtonHistorialItem).setDisabled(false);
					
						}else{
							Ext.getCmp(this.idBtonEditarItem).setDisabled(true);			
							Ext.getCmp(this.idBtonConfirmarItem).setDisabled(true);
							Ext.getCmp(this.idBtonEliminarItem).setDisabled(true);
							Ext.getCmp( this.idBtonHistorialItem).setDisabled(true);	
						}
					
					
					
						
						if( this.grid.getSelectionModel().getSelection()[0].data.estadoItem == 'PENDIENTE_APROBACION' || this.grid.getSelectionModel().getSelection()[0].data.estadoItem == 'APROBADO'){
						
							console.log('estadooooooo');
							console.log(this.grid.getSelectionModel().getSelection()[0].data.estadoItem )
						
							Ext.getCmp(this.idBtonAprobarItem).setDisabled(false);
							
							if (this.grid.getSelectionModel().getSelection()[0].data.estadoItem == 'APROBADO'){
								Ext.getCmp(this.idBtonAprobarItemInside).setDisabled(true);
								Ext.getCmp(this.idBtonRechazarItemInside).setDisabled(false);	
							}else{
								console.log('entre en el else')
								Ext.getCmp(this.idBtonAprobarItemInside).setDisabled(false);
								Ext.getCmp(this.idBtonRechazarItemInside).setDisabled(false);			
								
	
							}
							
							
						
						}else{
							Ext.getCmp(this.idBtonAprobarItem).setDisabled(true);			
							Ext.getCmp(this.idBtonAprobarItemInside).setDisabled(true);
							Ext.getCmp(this.idBtonRechazarItemInside).setDisabled(true);
						}
						
						if( this.grid.getSelectionModel().getSelection()[0].data.revisarItem == 'SI' ){
						
							Ext.getCmp(this.idBtonRevisarItem).setDisabled(false);
							
							Ext.getCmp(this.idBtonAprobarRevisionItemInside).setDisabled(false);
							Ext.getCmp(this.idBtonRechazarRevisionItemInside).setDisabled(false);		
					
						}else{
							Ext.getCmp(this.idBtonRevisarItem).setDisabled(true);			
							Ext.getCmp(this.idBtonAprobarRevisionItemInside).setDisabled(true);
							Ext.getCmp(this.idBtonRechazarRevisionItemInside).setDisabled(true);
						}
						
						//agregado por victor
						Ext.getCmp(this.idBtonRelacionesItem).setDisabled(false);
						
						
						
						
					}else{
						//agregado por victor
						Ext.getCmp(this.idBtonRelacionesItem).setDisabled(true);
						Ext.getCmp(this.idBtonVerItem).setDisabled(true);
						Ext.getCmp(this.idBtonImpactoItem).setDisabled(true);	
						
						Ext.getCmp(this.idBtonEditarItem).setDisabled(true);			
						Ext.getCmp(this.idBtonConfirmarItem).setDisabled(true);
						Ext.getCmp(this.idBtonEliminarItem).setDisabled(true);
						Ext.getCmp( this.idBtonHistorialItem).setDisabled(true);
						Ext.getCmp(this.idBtonAprobarItem).setDisabled(true);
						
						Ext.getCmp(this.idBtonAprobarItemInside).setDisabled(true);
						Ext.getCmp(this.idBtonRechazarItemInside).setDisabled(true);
						
						Ext.getCmp(this.idBtonRevisarItem).setDisabled(true);	
						Ext.getCmp(this.idBtonAprobarRevisionItemInside).setDisabled(true);
						Ext.getCmp(this.idBtonRechazarRevisionItemInside).setDisabled(true);
					
					}
					
				}
				   
			}
			
		});
			
		this.items = [this.grid];
        this.callParent(arguments);    

	},
	
	
	CrearItemRecordSelect: function(){
		
		//DataStore para el ComboBox de la lista de Tipos de Items
		this.dsCmbTipoItems = Ext.create('Ext.data.Store', {
			model : 'modelTipoItems',
			autoLoad : {params:{idFase: this.myIdFase}}
		}); 
		
		
		//ComboBox para mostrar los tipos de items disponibles
		this.cmbTiposItems = Ext.create(/*'Ext.form.ComboBox'*/'Ext.ux.form.field.BoxSelect', {
						
			fieldLabel: 'Tipo de Item',
			name : 'cmb_tiposItems',
			id: 'id_cmb_tiposItems',
			displayField: 'nombreTipoItem',
			width: 500,
			//height: 70,
			//labelWidth: 130,
			store: this.dsCmbTipoItems,
			queryMode: 'local',
			emptyText: 'Seleccione un Tipo de Item',
			valueField: 'idTipoItem',
			multiSelect :false,
			allowBlank : false,
			listeners:{
				scope: this,
				'select': function(combo, rec, idx){
					//onUpdateClick(combo, rec, idx)
					console.log(combo);
					console.log(rec);
					console.log(idx);
					idTipoItemEnviar = combo.value;
					console.log(idTipoItemEnviar);
					
					//traemos los permisos que tiene el rol que estamos editando
					Ext.Ajax.request(
					{
						url:'/items/traerAtributos',
						//form:"[STICK FORM ID HERE]",
						method:'GET',
						scope : this,
						params: { idTipoItem: idTipoItemEnviar},
						success: function(response, opts) {
							//alert("successfull");
							obj = Ext.decode(response.responseText)
							
							panelExiste = Ext.getCmp('id_datos_fields_item');
							
							if(panelExiste != null){
								panelExiste.destroy();
							}
							
							atributos = obj.atributos;
							
			
							campos = [];				
							for(index in atributos){
								//console.log(atributos[index]);
								
								this.tipoAux = null;
								anchorAux = '80%';
								if(atributos[index].tipo == 'FECHA'){
									anchorAux = '40%';
									this.tipoAux = 'datefield';
								}
								
								if(atributos[index].tipo == 'NUMERICO'){
									
									anchorAux = '40%';
									this.tipoAux = 'numberfield';
								}
								
								if(atributos[index].tipo == 'CADENA'){
									this.tipoAux = 'textfield';
								}
								if(atributos[index].tipo == 'ARCHIVO'){
									this.tipoAux = 'filefield';
								}
								
								campos.push
								(
									{
										fieldLabel:atributos[index].nombre, 
										name: atributos[index].nombre, 
										xtype : this.tipoAux, 
										anchor: anchorAux,
										tipoDato: atributos[index].tipo,
										buttonText: 'buscar',
										allowBlank: false
									}
								);
							}
							
							
							Ext.getCmp('id_panel_nuevo_item').add(Ext.widget('closablefieldset', {
								columnWidth: 0.5,
								id:'id_datos_fields_item',
								title: 'Atributos',
								collapsible: true,
								defaultType: 'textfield',
								defaults: { anchor: '100%' },
								layout: 'anchor',
								items: campos
							}));
							
						},
						failure:function(res,opt) {
							alert("request failed");
						}
					});
					
				}                           
			}

		});
		
		
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormAddModal = Ext.create('Ext.form.Panel',{
			frame :true,
			title : 'Nuevo Item',
			name: 'panel_nuevo_item',
			id: 'id_panel_nuevo_item',
			bodyStyle :'padding:5px 5px 0',
			width : 550,
			//height : 300,
			autoHeight:true,
			defaultType: 'textfield',
			items: 
			[
				{
					xtype: 'closablefieldset',
					columnWidth: 0.5,
					title: 'Creación de nuevo Item',
					//collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: 
					[
						
						{
							fieldLabel: 'Nombre:',
							allowBlank: false,
							name: 'nombre_item_field',
							id: 'id_nombre_item_field',
							anchor: '70%',
							maxLength:'45'

						},
						{
							fieldLabel: 'Descripción',
							name: 'descripcion_item_field',
							id: 'id_descripcion_item_field',
							xtype     : 'textareafield',
							anchor: '100%',
							maxLength:'195'

						},
						{
							fieldLabel: 'Complejidad',
							name: 'complejidad_item_field',
							id: 'id_complejidad_item_field',
							xtype: 'numberfield',
							maxValue: 100,
							minValue: 1,
							allowBlank: false,
							anchor: '40%'
						},
						{
							xtype : 'fieldcontainer',
							anchor: '70%',
							labelStyle : 'font-weight:bold;padding:0',
							items: [
								this.cmbTiposItems,
							]
						}
					]
				}
			],
			buttons: [{
				text : 'Guardar',
				id : 'id_btn_add_guardar_rol',
				iconCls : 'icon_button_save',
				scope : this,
				handler : this.HandlerGuardarDatosItem
				},{
				text : 'Cancelar',
				id : 'id_btn_add_cancelar_rol',
				icon:'static/images/cancel.png',
				scope : this,
				handler : function(){
					this.WindowFormAddModal.close();
				}
			}]
		});
		
		
		//Una vez creado el FormPanel lo reseteamos
		this.FormAddModal.getForm().reset();
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormAddModal = Ext.create('Ext.window.Window',{
			title : 'Agregar Nuevo Item',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 580,
			//height : 400,
			autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			items : [this.FormAddModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormAddModal.show();
		
		
	},
	
	//método que guarda un nuevo item
	HandlerGuardarDatosItem:function(){
		//Ext.Msg.alert("Info",this.FormAddModal.getForm().isValid());
		if (this.FormAddModal.getForm().isValid()){
			//Ext.Msg.alert("Info","Pasé la validación");
			
			var rec = new itemModel({
				
				nombreItem: Ext.getCmp('id_nombre_item_field').getValue(),
				complejidadItem: Ext.getCmp('id_complejidad_item_field').getValue(),
				descripcionItem: Ext.getCmp('id_descripcion_item_field').getValue(),
				idTipoItem: Ext.getCmp('id_cmb_tiposItems').getValue()
			});
			
			//acá empaquetmos los atributos del tipo de item especifico en un JSON
			atributos = Ext.getCmp('id_datos_fields_item').items.items;
			aux = null;
			valor = null;
			atributosEspArray = [];
			for(index in atributos){
				atributo = atributos[index];
				valor = atributo.getValue();
				
				if( atributo.tipoDato == 'FECHA' ){
					MyDate = new Date();
					MyDate = valor;
					valor = Ext.util.Format.date(MyDate,'d-F-Y');	
					
				}
			
				
				aux = {'nombreCampo': atributo.fieldLabel, 'tipo': atributo.tipoDato, 'valor': valor};
				atributosEspArray.push(aux);
			}
			
			console.log('voy a intentar hacer submit')
			
			this.FormAddModal.getForm().submit({
			
				
				method : 'POST',
				//type: "json",
				url : '/items/guardar', 
				clientValidation : true,
				scope : this,
				params : {
					item : Ext.JSON.encode(rec),
					camposEspecificos: Ext.JSON.encode(atributosEspArray),  
					idFase: this.myIdFase,
					nombreProyecto: this.myNombreProyecto,
					nombreFase: this.myNombreFase
					//archivo: Ext.getCmp('id_archivo_item_field').getValue()
				},
			
				
				success: function(form, action){
					console.log('estoy en el success de agregar item');
					
					this.WindowFormAddModal.close();
					this.store.load(
						{
							params:
							{
								idFase: this.myIdFase,
							}
						}
					);
				},
				failure: function(form, action){
					Ext.Msg.alert("Error",action.result);
					Ext.MessageBox.show({
						title : 'Informacion del sistema',
						msg : action.result.msg,
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR,
						width : 350
					});
				} //End failure
			});
		}
	},
	

	
	EditarItemRecordSelect:function(){
		
		
		
		
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormEditarItemModal = Ext.create('Ext.form.Panel',{
			frame :true,
			title : 'Editar Item',
			name: 'panel_editar_item',
			id: 'id_panel_editar_item',
			bodyStyle :'padding:5px 5px 0',
			width : 550,
			//height : 300,
			autoHeight:true,
			defaultType: 'textfield',
			items: 
			[
				{
					xtype: 'closablefieldset',
					columnWidth: 0.5,
					title: 'Datos del Item',
					//collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: 
					[
						{
							fieldLabel: 'Código',
							xtype: 'displayfield',
							
							allowBlank: false,
							name: 'codigo_item_editar_field',
							id: 'id_codigo_item_editar_field',
							anchor: '70%',
							//disabled: true
							
						},
						{
							fieldLabel: 'Version',
							name: 'version_item_editar_field',
							id: 'id_version_item_editar_field',
							//xtype: 'textfield',
							//allowBlank: false,
							anchor: '40%',
							xtype: 'displayfield'
							//disabled: true
						},
						{
							fieldLabel: 'Nombre',
							allowBlank: false,
							name: 'nombre_item_editar_field',
							id: 'id_nombre_item_editar_field',
							anchor: '70%',
							xtype: 'displayfield'
							//disabled: true
							
						},
						{
							fieldLabel: 'Descripción',
							name: 'descripcion_item_editar_field',
							id: 'id_descripcion_item_editar_field',
							xtype     : 'textareafield',
							anchor: '100%',
							maxLength:'195'

							//xtype: 'displayfield'
							//disabled: true
						},
						{
							fieldLabel: 'Complejidad',
							name: 'complejidad_item_editar_field',
							id: 'id_complejidad_item_editar_field',
							xtype: 'numberfield',
							maxValue: 100,
							minValue: 0,
							allowBlank: false,
							anchor: '40%'
							//xtype: 'displayfield'
							//disabled: true
						},
						{
							fieldLabel: 'Tipo Item',
							name: 'tipo_item_item_editar_field',
							id: 'id_tipo_item_item_editar_field',
							//xtype: 'textfield',
							//allowBlank: false,
							//anchor: '40%',
							xtype: 'displayfield'
							//disabled: true
						}
					]
				}
			],
			buttons: 
			[
				{
				text : 'Guardar',
				id : 'id_btn_editar_item',
				iconCls : 'icon_button_save',
				scope : this,
				handler : this.HandlerGuardarEdicionItem
				},
				{
					text : 'Cancelar',
					id : 'id_btn_ver_atras',
					icon:'static/images/cancel.png',
					scope : this,
					handler : function(){
						this.WindowFormEditarItemModal.close();
					}
				}	
			]
		});
		
		
		//Una vez creado el FormPanel lo reseteamos
		this.FormEditarItemModal.getForm().reset();
		
		//setamos los campos a mostrar
		registroSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
		
		Ext.getCmp('id_codigo_item_editar_field').setValue(registroSeleccionado.codItem);
		Ext.getCmp('id_nombre_item_editar_field').setValue(registroSeleccionado.nombreItem);
		Ext.getCmp('id_descripcion_item_editar_field').setValue(registroSeleccionado.descripcionItem);
		Ext.getCmp('id_complejidad_item_editar_field').setValue(registroSeleccionado.complejidadItem);
		Ext.getCmp('id_tipo_item_item_editar_field').setValue(registroSeleccionado.nombreTipoItem);
		Ext.getCmp('id_version_item_editar_field').setValue(registroSeleccionado.versionItem);
		
		var idBuscar  = null;
		
		//traemos los 
		Ext.Ajax.request(
		{
			url:'/items/traerAtributosValor',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			params: { 
				idTipoItem: registroSeleccionado.idTipoItem,
				idItem: registroSeleccionado.idItem,
				versionItem : registroSeleccionado.versionItem
			},
			async    : false,
			callback: function(opts, success, response) {
				
				obj = Ext.decode(response.responseText)
				atributosMostrar = obj.atributos;
				
				
				camposMostrar = [];
				for(index in atributosMostrar){
					console.log('atributosMostrar[index].tipo')
					console.log(atributosMostrar[index].tipo)
					
					this.tipoAux = null;
					valorAux = null;
					anchorAux = '80%';
					if(atributosMostrar[index].tipo == 'FECHA'){
						anchorAux = '50%';
						this.tipoAux = 'datefield';
						valorAux = atributosMostrar[index].valor;
					}
					
					if(atributosMostrar[index].tipo == 'NUMERICO'){
						console.log('encontre un numericoooo!!')
						
						anchorAux = '40%';
						this.tipoAux = 'numberfield';
						valorAux = atributosMostrar[index].valor;
						
					}
					
					if(atributosMostrar[index].tipo == 'CADENA'){
						
						this.tipoAux = 'textfield';
						valorAux = atributosMostrar[index].valor;
					}
					if(atributosMostrar[index].tipo == 'ARCHIVO'){
						
						this.tipoAux = 'displayfield';
						valorAux = atributosMostrar[index].valor; 
					}
					
					
					if (atributosMostrar[index].tipo == 'ARCHIVO'){
						camposMostrar.push
						(
							{
								fieldLabel:atributosMostrar[index].nombre, 
								name: 'campo' + index, 
								id: 'id_' + 'campo' + index,
								xtype : this.tipoAux, 
								anchor: anchorAux,
								tipoDato: atributosMostrar[index].tipo,
								value: valorAux,														
								format : 'd-F-Y',
								buttonText: 'Editar'
							},
							{
								//fieldLabel:atributos[index].nombre, 
								name: atributosMostrar[index].nombre, 
								xtype : 'filefield', 
								anchor: '30%',
								//tipoDato: atributos[index].tipo,
								buttonText: 'Editar'
							}
						);
						
							
					}else{
						camposMostrar.push
						(
							{
								fieldLabel:atributosMostrar[index].nombre, 
								name: 'campo' + index, 
								id: 'id_' + 'campo' + index,
								xtype : this.tipoAux, 
								anchor: anchorAux,
								tipoDato: atributosMostrar[index].tipo,
								value: valorAux,														
								format : 'd-F-Y',
								buttonText: 'Editar'
							}
						);	
						
					} 
					
					
					
					
					
					/*if(atributosMostrar[index].tipo == 'ARCHIVO'){
						idBuscar = 'id_' + 'campo' + index;
						console.log('idBuscar en el if de Archivo')
						console.log(idBuscar)
						//Ext.getCmp(this.idBuscar).setValue(valorAux);	
					}*/
					
				}
				
				
				Ext.getCmp('id_panel_editar_item').add(Ext.widget('closablefieldset', {
					columnWidth: 0.5,
					id:'id_datos_fields_editar_item',
					title: 'Atributos',
					collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: camposMostrar
				}));
				
				
			}/*,
			failure:function(res,opt) {
				alert("request failed");
			}*/
		});
		
		//a ver si anda los setear el valor de filefield
		/*console.log(idBuscar)
		console.log('valorAux que voy a intentar setear')
		console.log(valorAux)
		Ext.getCmp(idBuscar).setData(valorAux);*/
		
		
		
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormEditarItemModal = Ext.create('Ext.window.Window',{
			title : 'Editar Datos del Item',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 580,
			//height : 400,
			autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			items : [this.FormEditarItemModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormEditarItemModal.show();
		
	},
	
	
	//métdo que guarda la edición de un Item
	HandlerGuardarEdicionItem:function(){
		//Ext.Msg.alert("Info",this.FormAddModal.getForm().isValid());
		registroSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
		if (this.FormEditarItemModal.getForm().isValid()){
			
			var rec = new itemModel({
				
				//nombreItem: Ext.getCmp('id_nombre_item_field').getValue(),
				complejidadItem: Ext.getCmp('id_complejidad_item_editar_field').getValue(),
				descripcionItem: Ext.getCmp('id_descripcion_item_editar_field').getValue(),
				idTipoItem: registroSeleccionado.idTipoItem
			});
			
			//acá empaquetmos los atributos del tipo de item especifico en un JSON
			atributos = Ext.getCmp('id_datos_fields_editar_item').items.items;
			aux = null;
			valor = null;
			atributosEspArray = [];
			for(index in atributos){
				atributo = atributos[index];
				console.log( atributo.getValue() )
				valor = atributo.getValue();
				
				if( atributo.tipoDato == 'FECHA' ){
					MyDate = new Date();
					MyDate = valor;
					valor = Ext.util.Format.date(MyDate,'d-F-Y');	
					
				}
				
				aux = {'nombreCampo': atributo.fieldLabel, 'tipo': atributo.tipoDato, 'valor': valor};
				atributosEspArray.push(aux);
				//console.log(aux);
				//console.log(atributo);	
			}
			
			
			
			this.FormEditarItemModal.getForm().submit({
				method : 'POST',
				//type: "json",
				url : '/items/guardarEdicion', 
				clientValidation : true,
				scope : this,
				params : {
					item : Ext.JSON.encode(rec),
					camposEspecificos: Ext.JSON.encode(atributosEspArray),  
					idFase: this.myIdFase,
					nombreProyecto: this.myNombreProyecto,
					nombreFase: this.myNombreFase,
					idItem: registroSeleccionado.idItem
				},
				success: function(form, action){
					this.WindowFormEditarItemModal.close();
					this.store.load(
						{
							params:
							{
								idFase: this.myIdFase,
							}
						}
					);
				},
				failure: function(form, action){
					Ext.Msg.alert("Error",action.result);
					Ext.MessageBox.show({
						title : 'Informacion del sistema',
						msg : action.result.msg,
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR,
						width : 350
					});
				} //End failure
			});
		}
	},
	
	VerItemRecordSelect: function(){
		
		Ext.define('Ext.ux.Report', {
			extend: 'Ext.Component',
			//alias: 'ux.report',
			autoEl: {tag: 'iframe', cls: 'x-hidden', src: Ext.SSL_SECURE_URL},
			load: function(config){
				this.getEl().dom.src = config.url + (config.params ? '?' + Ext.urlEncode(config.params) : '');
			}
		});

		this.report = new Ext.ux.Report({
			renderTo: Ext.getBody()
		});
		
		
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormVerItemModal = Ext.create('Ext.form.Panel',{
			frame :true,
			title : 'Ver Item',
			name: 'panel_ver_item',
			id: 'id_panel_ver_item',
			bodyStyle :'padding:5px 5px 0',
			width : 550,
			//height : 300,
			autoHeight:true,
			defaultType: 'textfield',
			items: 
			[
				{
					xtype: 'closablefieldset',
					columnWidth: 0.5,
					title: 'Datos del Item',
					//collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: 
					[
						{
							fieldLabel: 'Código',
							xtype: 'displayfield',
							
							allowBlank: false,
							name: 'codigo_item_ver_field',
							id: 'id_codigo_item_ver_field',
							anchor: '70%',							
						},
						{
							fieldLabel: 'Version',
							name: 'version_item_ver_field',
							id: 'id_version_item_ver_field',
							anchor: '40%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Nombre',
							allowBlank: false,
							name: 'nombre_item_ver_field',
							id: 'id_nombre_item_ver_field',
							anchor: '70%',
							xtype: 'displayfield'
							
						},
						{
							fieldLabel: 'Descripción',
							name: 'descripcion_item_ver_field',
							id: 'id_descripcion_item_ver_field',
							//xtype     : 'textareafield',
							anchor: '100%',
							xtype: 'displayfield'
							//disabled: true
						},
						{
							fieldLabel: 'Complejidad',
							name: 'complejidad_item_ver_field',
							id: 'id_complejidad_item_ver_field',
							//xtype: 'numberfield',
							minValue: 0,
							allowBlank: false,
							anchor: '40%',
							xtype: 'displayfield'
							//disabled: true
						},
						{
							fieldLabel: 'Tipo Item',
							name: 'tipo_item_item_ver_field',
							id: 'id_tipo_item_item_ver_field',
							//xtype: 'textfield',
							//allowBlank: false,
							//anchor: '40%',
							xtype: 'displayfield'
							//disabled: true
						}
					]
				}
			],
			buttons: 
			[
				{
					text : 'Atras',
					id : 'id_btn_ver_atras',
					icon:'static/images/atras.png',
					scope : this,
					handler : function(){
						this.WindowFormVerItemModal.close();
					}
				}	
			]
		});
		
		
		//Una vez creado el FormPanel lo reseteamos
		this.FormVerItemModal.getForm().reset();
		
		//setamos los campos a mostrar
		registroSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
		
		Ext.getCmp('id_codigo_item_ver_field').setValue(registroSeleccionado.codItem);
		Ext.getCmp('id_nombre_item_ver_field').setValue(registroSeleccionado.nombreItem);
		Ext.getCmp('id_descripcion_item_ver_field').setValue(registroSeleccionado.descripcionItem);
		Ext.getCmp('id_complejidad_item_ver_field').setValue(registroSeleccionado.complejidadItem);
		Ext.getCmp('id_tipo_item_item_ver_field').setValue(registroSeleccionado.nombreTipoItem);
		Ext.getCmp('id_version_item_ver_field').setValue(registroSeleccionado.versionItem);
		
		
		//traemos los 
		Ext.Ajax.request(
		{
			url:'/items/traerAtributosValor',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			params: { 
				idTipoItem: registroSeleccionado.idTipoItem,
				idItem: registroSeleccionado.idItem,
				versionItem : registroSeleccionado.versionItem
			},
			success: function(response, opts) {
				//alert("successfull");
				obj = Ext.decode(response.responseText)
				
				atributosMostrar = obj.atributos;
				
				camposMostrar = [];
				
				for(index in atributosMostrar){
					//console.log(atributos[index]);
					
					this.tipoAux = null;
					valorAux = null;
					anchorAux = '80%';
					if(atributosMostrar[index].tipo == 'FECHA'){
						anchorAux = '40%';
						//this.tipoAux = 'datefield';
						
						console.log('>>>fecha en if')
						console.log(atributosMostrar[index].valor)
						
						valorAux = atributosMostrar[index].valor;
					}
					
					if(atributosMostrar[index].tipo == 'NUMERICO'){
						console.log('encontre un numericoooo!!')
						
						anchorAux = '40%';
						valorAux = atributosMostrar[index].valor;
						
					}
					
					if(atributosMostrar[index].tipo == 'CADENA'){
						
						valorAux = atributosMostrar[index].valor;
					}
					if(atributosMostrar[index].tipo == 'ARCHIVO'){
						
						valorAux = atributosMostrar[index].valor;
					}
					
					
					if(atributosMostrar[index].tipo == 'ARCHIVO'){
						
						camposMostrar.push
						(
							{
								fieldLabel:atributosMostrar[index].nombre, 
								name: 'campo' + index, 
								id: 'id' + 'campo' + index,
								xtype : 'displayfield',//this.tipoAux, 
								anchor: anchorAux,
								tipoDato: atributosMostrar[index].tipo,
								value: valorAux,														
							},
							{
								xtype: 'button',
								text: 'Descargar',
								id:'id_descargar_archivo' + 'campo' + index,
								nombreArchivo: valorAux,
								nombreAtributo: atributosMostrar[index].nombre,
								tooltip : 'Descargar archivo...',
								anchor: '15%',
								listeners : {
									scope:this,
									click: function(btn, e, eOpts) {  
									  this.DescargarArchivo(btn.nombreArchivo, btn.nombreAtributo); 	
									}
								}

								
							}	
						);	
						
					}else{
						camposMostrar.push
						(
							{
								fieldLabel:atributosMostrar[index].nombre, 
								name: 'campo' + index, 
								xtype : 'displayfield',
								anchor: anchorAux,
								tipoDato: atributosMostrar[index].tipo,
								value: valorAux,														
								format : 'd-F-Y'
								
							}
						);
						
					}
				}
				
				
				Ext.getCmp('id_panel_ver_item').add(Ext.widget('closablefieldset', {
					columnWidth: 0.5,
					id:'id_datos_fields_ver_item',
					title: 'Atributos',
					collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: camposMostrar
				}));
			
			},
			failure:function(res,opt) {
				alert("request failed");
			}
		});
		
		
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormVerItemModal = Ext.create('Ext.window.Window',{
			title : 'Ver Datos del Item',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 580,
			//height : 400,
			autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			items : [this.FormVerItemModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormVerItemModal.show();
		
	},
	
	DescargarArchivo : function(nombreArchivo, nombreAtributo){
		
		itemSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
		
		this.report.load({
			url: '/items/descargarArchivo',
			params: { 
				idItem: itemSeleccionado.idItem,
				versionItem : itemSeleccionado.versionItem,
				nombreArchivo:nombreArchivo,
				nombreAtributo:nombreAtributo
			},
		});
	},
	
	
	//método asociado al botón de eliminar 
	EliminarItemRecordSelect : function(){
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea eliminar el registro seleccionado?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.PersistirEliminarItem,
			width : 400
		});
	},
	
	
	
	PersistirEliminarItem: function(btn){
		if (btn == 'yes') { //btn=='yes'
			
			itemSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
			Ext.Ajax.request({
				url : '/items/eliminar', //application/controllers/Habitacion.php
				method : 'POST',
				scope : this,
				params : {
					idItem : itemSeleccionado.idItem
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
						this.store.load(
						{
							params:
							{
								idFase: this.myIdFase,
							}
						}
					);
						//this.WindowAdmUsuarios.el.unmask();
					}
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}
		
		
	},
	

	ConfirmarItemRecordSelect : function(){
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea confirmar el Item?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.PersistirConfirmarItem,
			width : 400
		});
	},
	
	
	PersistirConfirmarItem: function(btn){
		if (btn == 'yes') { //btn=='yes'
			
			itemSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
			Ext.Ajax.request({
				url : '/items/confirmar', 
				method : 'POST',
				scope : this,
				params : {
					idItem : itemSeleccionado.idItem
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
						this.store.load(
							{
								params:
								{
									idFase: this.myIdFase,
								}
							}
						);
						/*Ext.getCmp('btn_grid_confirmar_item').setDisabled(true);
						
							//this.WindowAdmUsuarios.el.unmask();
						}*/
					}
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}
		
		
	},
	
	
	AprobarItemRecordSelect: function(){
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea Aprobar el Item?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.PersistirAprobacionItem,
			width : 400
		});
	},
	
	PersistirAprobacionItem: function(btn){
		if (btn == 'yes') { //btn=='yes'
			//WindowAdmUsuarios.el.mask('Eliminando datos....Espere por favor...');
			
			//Ext.Msg.alert("this.grid.getSelectionModel().getSelection()[0].data.id;", this.grid.getSelectionModel().getSelection()[0].data.id);
			
			
			
			itemSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
			Ext.Ajax.request({
				url : '/items/aprobar', 
				method : 'POST',
				scope : this,
				params : {
					idItem : itemSeleccionado.idItem
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					obj = Ext.decode(response.responseText)
					
					if(obj.respuesta == 'OK'){
						this.store.load(
							{
								params:
								{
									idFase: this.myIdFase,
								}
							}
						);	
					}else{
						Ext.Msg.alert('Estatus',  'EL ITEM NO POSEE UN ANTECESOR O TIENE UN PADRE NO APROBADO!', function(btn, text){					   
							if (btn == 'ok'){
										
							}
						
						});	
					}
										
					/*if(obj.success==true){
						
						Ext.getCmp('btn_grid_confirmar_item').setDisabled(true);
						
							//this.WindowAdmUsuarios.el.unmask();
						}
					}	
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}*/
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}
		
		
	},
	
	
	//
	RechazarItemRecordSelect: function(){
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea Rechazar el Item?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.PersistirRechazoItem,
			width : 400
		});
	},
	
	PersistirRechazoItem: function(btn){
		if (btn == 'yes') { //btn=='yes'
			//WindowAdmUsuarios.el.mask('Eliminando datos....Espere por favor...');
			
			//Ext.Msg.alert("this.grid.getSelectionModel().getSelection()[0].data.id;", this.grid.getSelectionModel().getSelection()[0].data.id);
			
			
			
			itemSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
			Ext.Ajax.request({
				url : '/items/rechazar', 
				method : 'POST',
				scope : this,
				params : {
					idItem : itemSeleccionado.idItem
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
						respuesta = obj.respuesta;
						mensaje = obj.mensaje;
						
						if( respuesta == 'OK'){
							this.store.load(
								{
									params:
									{
										idFase: this.myIdFase,
									}
								}
							);	
						}else{
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : mensaje,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
						}
						
					}	
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}
		
		
	},
	
	HistorialItemRecordSelect:function() {
		
		//
		itemSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
		
		//creamos el store donde se guardaran los items anteriores a la version actual
		this.storeHistorial = Ext.create('Ext.data.Store', {
			storeId: 'itemsFasesHistorial',
			model: 'itemModelHistorial',
			proxy: {
				type: 'ajax',
				url: '/items/traerHistorialItem',
				reader: {
					type: 'json',
					root: 'items'
				}
			},
			idFase: this.myIdFase,
			codItem:itemSeleccionado.codItem,
			autoLoad: {start: 0, limit: 25, params:{idFase: this.myIdFase, codItem: itemSeleccionado.codItem}} 
			
		});
		
		//toolBar
		this.TblgridHistorial = Ext.create('Ext.toolbar.Toolbar',{
			items : [
				{
					xtype : 'button',
					id : 'id_ver_item_historial_btn',
					itemId : 'id_ver_item_historial_btn',
					text : 'Ver versión Item',
					icon:'static/images/view.png',
					disabled : true,
					tooltip : 'Ver atributos de la versión del Item...',
					scope : this,
					//disabled: true,
					handler : this.VerItemHistorialRecordSelect
				},
				{
					xtype : 'tbseparator'
				},{
					xtype : 'button',
					id : 'id_revertir_item_historial_btn',
					itemId : 'id_revertir_item_historial_btn',
					text : 'Volver a versión',
					icon:'static/images/revivir.png',
					disabled : true,
					tooltip : 'Volver a la versión seleccionada del Item...',
					scope : this,
					handler : this.VolverVersionItemHistorialRecordSelect
				}
			]
		});
		
		
		//grilla donde se van a mostrar las versiones del Item
		this.gridHistorial = Ext.create(/*'Ext.grid.Panel'*/ 'DesarrolloItemLiveSearchGridPanel', {
			id: 'id_grid_historial',
			title: 'Versiones del Item ' + itemSeleccionado.nombreItem,
			frame : true,
			store : this.storeHistorial,
			stripeRows : true,
			columnLines: true,
			loadMask : true,
			//width : 550,
			//height : 400,
			anchor: '100% 90%', 
			//features: [this.grouping],
			dockedItems : [this.TblgridHistorial,
				Ext.create('Ext.ux.StatusBar', {
				defaultText: this.defaultStatusText,
				name: 'searchStatusBar'
				})
			],
			columns: 
			[
				{
					//text: 'id',
					hidden: true,
					dataIndex: 'idItem',
					flex: 1
				},
				
				{
					//text: 'id',
					hidden: true,
					dataIndex: 'idTipoItem',
					flex: 1
				},
				{
					text: 'Código',
					dataIndex: 'codItem',
					flex: 1
				},
				{
					text: 'Nombre Item',
					dataIndex: 'nombreItem',
					flex: 1
				},
				{
					text: 'Complejidad',
					dataIndex: 'complejidadItem',
					flex: 1
				},
				{
					text: 'Version',
					dataIndex: 'versionItem',
					flex: 1
				},
				{
					text: 'Estado',
					dataIndex: 'estadoItem',
					flex: 1
				},
				{
					xtype: 'booleancolumn', 
					text: 'Revisar',
					trueText: 'SI',
					falseText: 'NO', 
					dataIndex: 'revisarItem'
				},
				{
					xtype: 'booleancolumn', 
					text: 'Modificar',
					trueText: 'SI',
					falseText: 'NO', 
					dataIndex: 'modificarItem'
				}
				
				
			],
			bbar: Ext.create('Ext.PagingToolbar', {
				store : this.storeHistorial,
				displayInfo : true,
				displayMsg : 'Mostrando registros {0} - {1} de {2}',
				emptyMsg : "Sin registros para mostrar",
				
				doRefresh : function(){
					var store = this.store;
					store.loadPage(store.currentPage, 
						{
							params: 
							{
								idFase: store.idFase,
								codItem:store.codItem
							}
						}
					
					
					);
				},
				
			}),
			
			listeners:{
				scope:this,     
				
				'selectionchange': function(view, records) {
					Ext.getCmp('id_ver_item_historial_btn').setDisabled(false);
					Ext.getCmp('id_revertir_item_historial_btn').setDisabled(false);
				}
				   
			}
			
		});
		
		
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormHistorialItemModal = Ext.create('Ext.window.Window',{
			title : 'Historial de Item',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 700,
			//height : 400,
			//autoWidth:true,
			autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			buttons: 
			[
				{
					text : 'Cancelar',
					id : 'id_btn_cancelar_historial',
					icon:'static/images/cancel.png',
					scope : this,
					handler : function(){
						this.WindowFormHistorialItemModal.close();
					}
				}	
			],
			items : [this.gridHistorial]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormHistorialItemModal.show();
		
		
		
	},
	
	
	VerItemHistorialRecordSelect: function(){
	
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormVerItemHistorialModal = Ext.create('Ext.form.Panel',{
			frame :true,
			title : 'Ver Item',
			name: 'panel_ver_item',
			id: 'id_panel_ver_item_historial',
			bodyStyle :'padding:5px 5px 0',
			width : 550,
			//height : 300,
			autoHeight:true,
			defaultType: 'textfield',
			items: 
			[
				{
					xtype: 'closablefieldset',
					columnWidth: 0.5,
					title: 'Datos del Item',
					//collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: 
					[
						{
							fieldLabel: 'Código',
							xtype: 'displayfield',
							
							allowBlank: false,
							name: 'codigo_item_ver_field_historial',
							id: 'id_codigo_item_ver_field_historial',
							anchor: '70%',
							//disabled: true
							
						},
						{
							fieldLabel: 'Version',
							name: 'version_item_ver_field_historial',
							id: 'id_version_item_ver_field_historial',
							anchor: '40%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Nombre',
							allowBlank: false,
							name: 'nombre_item_ver_field_historial',
							id: 'id_nombre_item_ver_field_historial',
							anchor: '70%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Descripción',
							name: 'descripcion_item_ver_field_historial',
							id: 'id_descripcion_item_ver_field_historial',
							anchor: '100%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Complejidad',
							name: 'complejidad_item_ver_field_historial',
							id: 'id_complejidad_item_ver_field_historial',
							minValue: 0,
							allowBlank: false,
							anchor: '40%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Tipo Item',
							name: 'tipo_item_item_ver_field_historial',
							id: 'id_tipo_item_item_ver_field_historial',
							xtype: 'displayfield'
						}
					]
				}
			],
			buttons: 
			[
				{
					text : 'Volver a lista',
					id : 'id_btn_ver_atras_historial',
					icon:'static/images/atras.png',
					scope : this,
					handler : function(){
						this.WindowFormVerItemHistorialModal.close();
					}
				}	
			]
		});
		
		
		//Una vez creado el FormPanel lo reseteamos
		this.FormVerItemHistorialModal.getForm().reset();
		
		//setamos los campos a mostrar
		registroSeleccionadoHistorial = this.gridHistorial.getSelectionModel().getSelection()[0].data;
		
		Ext.getCmp('id_codigo_item_ver_field_historial').setValue(registroSeleccionadoHistorial.codItem);
		Ext.getCmp('id_nombre_item_ver_field_historial').setValue(registroSeleccionadoHistorial.nombreItem);
		Ext.getCmp('id_descripcion_item_ver_field_historial').setValue(registroSeleccionadoHistorial.descripcionItem);
		Ext.getCmp('id_complejidad_item_ver_field_historial').setValue(registroSeleccionadoHistorial.complejidadItem);
		Ext.getCmp('id_tipo_item_item_ver_field_historial').setValue(registroSeleccionadoHistorial.nombreTipoItem);
		Ext.getCmp('id_version_item_ver_field_historial').setValue(registroSeleccionadoHistorial.versionItem);
		
		
		//traemos los 
		Ext.Ajax.request(
		{
			url:'/items/traerAtributosValor',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			params: { 
				idTipoItem: registroSeleccionadoHistorial.idTipoItem,
				idItem: registroSeleccionadoHistorial.idItem,
				versionItem : registroSeleccionadoHistorial.versionItem
			},
			success: function(response, opts) {
				//alert("successfull");
				obj = Ext.decode(response.responseText)
				
				
				atributosMostrar = obj.atributos;
				
				camposMostrar = [];
				
				for(index in atributosMostrar){
					//console.log(atributos[index]);
					
					this.tipoAux = null;
					valorAux = null;
					anchorAux = '80%';
					if(atributosMostrar[index].tipo == 'FECHA'){
						anchorAux = '40%';
						//this.tipoAux = 'datefield';
						
						console.log('>>>fecha en if')
						console.log(atributosMostrar[index].valor)
						
						valorAux = atributosMostrar[index].valor;
					}
					
					if(atributosMostrar[index].tipo == 'NUMERICO'){
						console.log('encontre un numericoooo!!')
						
						anchorAux = '40%';
						valorAux = atributosMostrar[index].valor;
						
					}
					
					if(atributosMostrar[index].tipo == 'CADENA'){
						
						valorAux = atributosMostrar[index].valor;
					}
					if(atributosMostrar[index].tipo == 'ARCHIVO'){
						
						valorAux = atributosMostrar[index].valor;
					}
					
					
					if(atributosMostrar[index].tipo == 'ARCHIVO'){
						
						camposMostrar.push
						(
							{
								fieldLabel:atributosMostrar[index].nombre, 
								name: 'campo' + index, 
								id: 'id' + 'campo' + index,
								xtype : 'displayfield',
								anchor: anchorAux,
								tipoDato: atributosMostrar[index].tipo,
								value: valorAux,														
							}	
						);	
						
					}else{
						camposMostrar.push
						(
							{
								fieldLabel:atributosMostrar[index].nombre, 
								name: 'campo' + index, 
								xtype : 'displayfield',
								anchor: anchorAux,
								tipoDato: atributosMostrar[index].tipo,
								value: valorAux,														
								format : 'd-F-Y'
								
							}
						);
						
					}
				}
				
				Ext.getCmp('id_panel_ver_item_historial').add(Ext.widget('closablefieldset', {
					columnWidth: 0.5,
					id:'id_datos_fields_ver_item_historial',
					title: 'Atributos',
					collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: camposMostrar
				}));
				
			},
			failure:function(res,opt) {
				alert("request failed");
			}
		});
		
		
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormVerItemHistorialModal = Ext.create('Ext.window.Window',{
			title : 'Ver Datos del Item',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 580,
			//height : 400,
			autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			items : [this.FormVerItemHistorialModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormVerItemHistorialModal.show();
	
		
	},
	
	VolverVersionItemHistorialRecordSelect:function(){
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea volver a esta version?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.PersistirReversionItem,
			width : 400
		});	
	},
	
	
	PersistirReversionItem:function(btn){
		if (btn == 'yes') { //btn=='yes'
			
			
			itemUltimoSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
			itemVersionSeleccionado = this.gridHistorial.getSelectionModel().getSelection()[0].data;
			
			Ext.Ajax.request({
				url : '/items/revertir', 
				method : 'POST',
				scope : this,
				params : {
					idItemVersion : itemVersionSeleccionado.idItem,
					idItemUltimo : itemUltimoSeleccionado.idItem,
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
					
						this.WindowFormHistorialItemModal.close();
						this.store.load(
							{
								params:
								{
									idFase: this.myIdFase,
								}
							}
						);
					
					}
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}	
		
	},
	
	
	
	
	//
	RevivirItems: function(){
		
		
		
		//creamos el store donde se guardaran los items anteriores a la version actual
		this.storeRevivir = Ext.create('Ext.data.Store', {
			storeId: 'itemsFaseRevivir',
			model: 'itemModelRevivir',
			proxy: {
				type: 'ajax',
				url: '/items/traerListaRevivir',
				reader: {
					type: 'json',
					root: 'items'
				}
			},
			idFase: this.myIdFase,
			//codItem:itemSeleccionado.codItem,
			autoLoad: {start: 0, limit: 25, params:{idFase: this.myIdFase}} 
			
		});
		
		//toolBar
		this.TblgridRevivir = Ext.create('Ext.toolbar.Toolbar',{
			items : [
				{
					xtype : 'button',
					id : 'id_ver_item_revivir_btn',
					itemId : 'id_ver_item_revivir_btn',
					text : 'Ver Item Eliminado',
					icon:'static/images/view.png',
					disabled : true,
					tooltip : 'Ver atributos del Item eliminado...',
					scope : this,
					//disabled: true,
					handler : this.VerItemRevivirRecordSelect
				},
				{
					xtype : 'tbseparator'
				},{
					xtype : 'button',
					id : 'id_revivir_item_btn',
					itemId : 'id_revivir_item_btn',
					text : 'Revivir Item',
					icon:'static/images/revivir.png',
					disabled : true,
					tooltip : 'Revivir Item Seleccioando...',
					scope : this,
					handler : this.RevivirItemListaRecordSelect
				}
			]
		});
		
		
		//grilla donde se van a mostrar las versiones del Item
		this.gridRevivir = Ext.create(/*'Ext.grid.Panel'*/ 'DesarrolloItemLiveSearchGridPanel', {
			id: 'id_grid_revivir',
			title: 'Lista de Items Eliminados',
			frame : true,
			store : this.storeRevivir,
			stripeRows : true,
			columnLines: true,
			loadMask : true,
			//width : 550,
			//height : 400,
			anchor: '100% 90%', 
			//features: [this.grouping],
			dockedItems : [this.TblgridRevivir,
				Ext.create('Ext.ux.StatusBar', {
				defaultText: this.defaultStatusText,
				name: 'searchStatusBar'
				})
			],
			columns: 
			[
				{
					//text: 'id',
					hidden: true,
					dataIndex: 'idItem',
					flex: 1
				},
				
				{
					//text: 'id',
					hidden: true,
					dataIndex: 'idTipoItem',
					flex: 1
				},
				{
					text: 'Código',
					dataIndex: 'codItem',
					flex: 1
				},
				{
					text: 'Nombre Item',
					dataIndex: 'nombreItem',
					flex: 1
				},
				{
					text: 'Complejidad',
					dataIndex: 'complejidadItem',
					flex: 1
				},
				{
					text: 'Version',
					dataIndex: 'versionItem',
					flex: 1
				},
				{
					text: 'Estado',
					dataIndex: 'estadoItem',
					flex: 1
				},
				{
					xtype: 'booleancolumn', 
					text: 'Revisar',
					trueText: 'SI',
					falseText: 'NO', 
					dataIndex: 'revisarItem'
				},
				{
					xtype: 'booleancolumn', 
					text: 'Modificar',
					trueText: 'SI',
					falseText: 'NO', 
					dataIndex: 'modificarItem'
				}
			],
			bbar: Ext.create('Ext.PagingToolbar', {
				store : this.storeRevivir,
				displayInfo : true,
				displayMsg : 'Mostrando registros {0} - {1} de {2}',
				emptyMsg : "Sin registros para mostrar",
				
				doRefresh : function(){
					var store = this.store;
					store.loadPage(store.currentPage, 
						{
							params: 
							{
								idFase: store.idFase
								//codItem:store.codItem
							}
						}
					
					
					);
				},
				
			}),
			
			listeners:{
				scope:this,     
				
				'selectionchange': function(view, records) {
					Ext.getCmp('id_ver_item_revivir_btn').setDisabled(false);
					Ext.getCmp('id_revivir_item_btn').setDisabled(false);
				}
				   
			}
			
		});
		
		
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormListaRevivirItemModal = Ext.create('Ext.window.Window',{
			title : 'Item Eliminados de la Fase',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 700,
			//height : 400,
			//autoWidth:true,
			autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			buttons: 
			[
				{
					text : 'Atras',
					id : 'id_btn_atras_grid_revivir',
					icon:'static/images/atras.png',
					scope : this,
					handler : function(){
						this.WindowFormListaRevivirItemModal.close();
					}
				}	
			],
			items : [this.gridRevivir]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormListaRevivirItemModal.show();
		
	},
	
	VerItemRevivirRecordSelect: function(){
		
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormVerItemRevivirModal = Ext.create('Ext.form.Panel',{
			frame :true,
			title : 'Ver Item',
			name: 'panel_ver_item',
			id: 'id_panel_ver_item_revivir',
			bodyStyle :'padding:5px 5px 0',
			width : 550,
			//height : 300,
			autoHeight:true,
			defaultType: 'textfield',
			items: 
			[
				{
					xtype: 'closablefieldset',
					columnWidth: 0.5,
					title: 'Datos del Item',
					//collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: 
					[
						{
							fieldLabel: 'Código',
							xtype: 'displayfield',
							
							allowBlank: false,
							name: 'codigo_item_ver_field_revivir',
							id: 'id_codigo_item_ver_field_revivir',
							anchor: '70%',
							//disabled: true
							
						},
						{
							fieldLabel: 'Version',
							name: 'version_item_ver_field_revivir',
							id: 'id_version_item_ver_field_revivir',
							anchor: '40%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Nombre',
							allowBlank: false,
							name: 'nombre_item_ver_field_revivir',
							id: 'id_nombre_item_ver_field_revivir',
							anchor: '70%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Descripción',
							name: 'descripcion_item_ver_field_revivir',
							id: 'id_descripcion_item_ver_field_revivir',
							anchor: '100%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Complejidad',
							name: 'complejidad_item_ver_field_revivir',
							id: 'id_complejidad_item_ver_field_revivir',
							minValue: 0,
							allowBlank: false,
							anchor: '40%',
							xtype: 'displayfield'
						},
						{
							fieldLabel: 'Tipo Item',
							name: 'tipo_item_item_ver_field_revivir',
							id: 'id_tipo_item_item_ver_field_revivir',
							xtype: 'displayfield'
						}
					]
				}
			],
			buttons: 
			[
				{
					text : 'Volver a lista',
					id : 'id_btn_ver_atras_revivir',
					icon:'static/images/atras.png',
					scope : this,
					handler : function(){
						this.WindowFormVerItemRevivirModal.close();
					}
				}	
			]
		});
		
		
		//Una vez creado el FormPanel lo reseteamos
		this.FormVerItemRevivirModal.getForm().reset();
		
		//setamos los campos a mostrar
		registroSeleccionadoRevivir = this.gridRevivir.getSelectionModel().getSelection()[0].data;
		
		Ext.getCmp('id_codigo_item_ver_field_revivir').setValue(registroSeleccionadoRevivir.codItem);
		Ext.getCmp('id_nombre_item_ver_field_revivir').setValue(registroSeleccionadoRevivir.nombreItem);
		Ext.getCmp('id_descripcion_item_ver_field_revivir').setValue(registroSeleccionadoRevivir.descripcionItem);
		Ext.getCmp('id_complejidad_item_ver_field_revivir').setValue(registroSeleccionadoRevivir.complejidadItem);
		Ext.getCmp('id_tipo_item_item_ver_field_revivir').setValue(registroSeleccionadoRevivir.nombreTipoItem);
		Ext.getCmp('id_version_item_ver_field_revivir').setValue(registroSeleccionadoRevivir.versionItem);
		
		
		//traemos los 
		Ext.Ajax.request(
		{
			url:'/items/traerAtributosValor',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			params: { 
				idTipoItem: registroSeleccionadoRevivir.idTipoItem,
				idItem: registroSeleccionadoRevivir.idItem,
				versionItem : registroSeleccionadoRevivir.versionItem
			},
			success: function(response, opts) {
				//alert("successfull");
				obj = Ext.decode(response.responseText)
				atributosMostrar = obj.atributos;
				
				camposMostrar = [];
				
				for(index in atributosMostrar){
					//console.log(atributos[index]);
					
					this.tipoAux = null;
					valorAux = null;
					anchorAux = '80%';
					if(atributosMostrar[index].tipo == 'FECHA'){
						anchorAux = '40%';
						valorAux = atributosMostrar[index].valor;
					}
					
					if(atributosMostrar[index].tipo == 'NUMERICO'){
						anchorAux = '40%';
						valorAux = atributosMostrar[index].valor;
						
					}
					
					if(atributosMostrar[index].tipo == 'CADENA'){
						
						valorAux = atributosMostrar[index].valor;
					}
					
					if(atributosMostrar[index].tipo == 'ARCHIVO'){
						
						valorAux = atributosMostrar[index].valor;
					}
					
					
					if(atributosMostrar[index].tipo == 'ARCHIVO'){
						
						camposMostrar.push
						(
							{
								fieldLabel:atributosMostrar[index].nombre, 
								name: 'campo' + index, 
								id: 'id' + 'campo' + index,
								xtype : 'displayfield',
								anchor: anchorAux,
								tipoDato: atributosMostrar[index].tipo,
								value: valorAux,														
							}
						);	
						
					}else{
						camposMostrar.push
						(
							{
								fieldLabel:atributosMostrar[index].nombre, 
								name: 'campo' + index, 
								xtype : 'displayfield',
								anchor: anchorAux,
								tipoDato: atributosMostrar[index].tipo,
								value: valorAux,														
								format : 'd-F-Y'
								
							}
						);
						
					}
				}
				
				
				Ext.getCmp('id_panel_ver_item_revivir').add(Ext.widget('closablefieldset', {
					columnWidth: 0.5,
					id:'id_datos_fields_ver_item_revivir',
					title: 'Atributos',
					collapsible: true,
					defaultType: 'textfield',
					defaults: { anchor: '100%' },
					layout: 'anchor',
					items: camposMostrar
				}));
				
			},
			failure:function(res,opt) {
				alert("request failed");
			}
		});
		
		
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormVerItemRevivirModal = Ext.create('Ext.window.Window',{
			title : 'Ver Datos del Item',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 580,
			//height : 400,
			autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			items : [this.FormVerItemRevivirModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormVerItemRevivirModal.show();
	
	},
	
	RevivirItemListaRecordSelect: function(){
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea revivir el Item?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.PersistirRevivirItem,
			width : 400
		});	
	},
	
	PersistirRevivirItem: function(btn){
		if (btn == 'yes') { //btn=='yes'
			itemRevivirSeleccionado = this.gridRevivir.getSelectionModel().getSelection()[0].data;
			
			Ext.Ajax.request({
				url : '/items/revivir', 
				method : 'POST',
				scope : this,
				params : {
					idItemRevivir : itemRevivirSeleccionado.idItem
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
					
						this.storeRevivir.load(
							{
								params:
								{
									idFase: this.myIdFase,
								}
							}
						);
						
						this.store.load(
							{
								params:
								{
									idFase: this.myIdFase,
								}
							}
						)	
						
					}
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}				
			
	},
	
	//impacto hacia atrás
	ImpactoAtrasItemRecordSelect:function(){
		itemImpactoSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
	
		this.nombreImagen = null;
		this.valorImpacto = null;
		//hacemos la llamada ajax asíncrona para generar la imagen
		Ext.Ajax.request(
		{
			url:'/items/impactoAtras',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			async    : false,
			params:{
				idItem:itemImpactoSeleccionado.idItem 
			},
			callback : function(opts, success, response) {
				
				obj = Ext.decode(response.responseText);
				this.nombreImagen = obj.nombreImagen;
				this.valor_impacto = obj.impacto;
				
			}			
		});
	
		
	
	
		this.imagen = Ext.create('Ext.Img', 
		{
			src: pathBase + 'images/' + this.nombreImagen,
			id: 'logo',
			style: { display: 'block', margin: 'auto' }
			
			
        }); 
	
	
	
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormImpactoItemAtrasModal = Ext.create('Ext.form.Panel',{
			frame :true,
			title : 'Impacto del Item hacia atrás',
			name: 'panel_impacto_atras_item',
			id: 'id_panel_impacto_atras_item',
			bodyStyle :'padding:5px 5px 0',
			autoScroll: true,
			height: 600,
			autoHeight:true,
			items: 
			[
				{
					fieldLabel: 'Impacto',
					name: 'valor_impacto',
					id: 'id_valor_impacto',
					labelStyle: 'font-size:24px',
					xtype: 'displayfield',
					value: '<span style="color:red;font-size:24px">' + this.valor_impacto + '</span>'
				},
				this.imagen	
			],
			buttons: 
			[
				{
					text : 'Atrás',
					id : 'id_btn_atras_impacto_atras',
					icon:'static/images/atras.png',
					scope : this,
					handler : function(){
						this.WindowFormImpactoItemAtrasModal.close();
					}
				}	
			]
		});
				
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormImpactoItemAtrasModal = Ext.create('Ext.window.Window',{
			title : 'Cálculo de Impacto',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 750,
			height : 650,
			//width : 750,
			//height : 750,
			//autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			maximizable: true,
			items : [this.FormImpactoItemAtrasModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormImpactoItemAtrasModal.show();
		
	},
	
	
	
	//impacto total handeler
	ImpactoTotalItemRecordSelect:function(){
		itemImpactoSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
	
		this.nombreImagen = null;
		//hacemos la llamada ajax asíncrona para generar la imagen
		Ext.Ajax.request(
		{
			url:'/items/impactoTotal',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			async    : false,
			params:{
				idItem:itemImpactoSeleccionado.idItem 
			},
			callback : function(opts, success, response) {
				
				obj = Ext.decode(response.responseText);
				this.nombreImagen = obj.nombreImagen;
				this.valor_impacto = obj.impacto;
			}			
		});
	
		
	
	
		this.imagen = Ext.create('Ext.Img', 
		{
			src: pathBase + 'images/' + this.nombreImagen,
			id: 'logo',
			style: { display: 'block', margin: 'auto' }
			
        }); 
	
	
	
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormImpactoItemTotalModal = Ext.create('Ext.form.Panel',{
			frame :true,
			title : 'Impacto Total del Item',
			name: 'panel_impacto_total_item',
			id: 'id_panel_impacto_total_item',
			bodyStyle :'padding:5px 5px 0',
			autoScroll: true,
			height: 600,
			autoHeight:true,
			items: 
			[
				{
					fieldLabel: 'Impacto',
					name: 'valor_impacto',
					id: 'id_valor_impacto',
					labelStyle: 'font-size:24px',
					xtype: 'displayfield',
					value: '<span style="color:red;font-size:24px">' + this.valor_impacto + '</span>'
				},
				this.imagen	
			],
			buttons: 
			[
				{
					text : 'Atrás',
					id : 'id_btn_atras_impacto_total',
					icon:'static/images/atras.png',
					scope : this,
					handler : function(){
						this.WindowFormImpactoItemTotalModal.close();
					}
				}	
			]
		});
				
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormImpactoItemTotalModal = Ext.create('Ext.window.Window',{
			title : 'Cálculo de Impacto',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 750,
			height : 650,
			//minHeight: 700,
			//autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			maximizable: true,
			items : [this.FormImpactoItemTotalModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormImpactoItemTotalModal.show();
		
	},
	
	
	
	
	//
	ImpactoAdelanteItemRecordSelect:function(){
		itemImpactoSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
	
		this.nombreImagen = null;
		//hacemos la llamada ajax asíncrona para generar la imagen
		Ext.Ajax.request(
		{
			url:'/items/impactoAdelante',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			async    : false,
			params:{
				idItem:itemImpactoSeleccionado.idItem 
			},
			callback : function(opts, success, response) {
				obj = Ext.decode(response.responseText);
				this.nombreImagen = obj.nombreImagen;
				this.valor_impacto = obj.impacto;
			}			
		});
	
		
	
	
		this.imagen = Ext.create('Ext.Img', 
		{
			src: pathBase + 'images/' + this.nombreImagen,
			id: 'logo',
			style: { display: 'block', margin: 'auto' }
			
        }); 
	
	
	
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormImpactoItemAdelanteModal = Ext.create('Ext.form.Panel',{
			frame :true,
			title : 'Impacto del Item hacia Adelante',
			name: 'panel_impacto_adelante_item',
			id: 'id_panel_impacto_adelante_item',
			bodyStyle :'padding:5px 5px 0',
			autoScroll: true,
			height: 600,
			autoHeight:true,
			
			items: 
			[
				{
					fieldLabel: 'Impacto',
					name: 'valor_impacto',
					id: 'id_valor_impacto',
					labelStyle: 'font-size:24px',
					xtype: 'displayfield',
					value: '<span style="color:red;font-size:24px">' + this.valor_impacto + '</span>'
				},
				this.imagen
					
			],
			buttons: 
			[
				{
					text : 'Atrás',
					id : 'id_btn_atras_impacto_adelante',
					icon:'static/images/atras.png',
					scope : this,
					handler : function(){
						this.WindowFormImpactoItemAdelanteModal.close();
					}
				}	
			]
		});
				
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormImpactoItemAdelanteModal = Ext.create('Ext.window.Window',{
			title : 'Cálculo de Impacto',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 750,
			height : 650,
			//width : 750,
			//height : 750,
			//autoHeight:true,
			modal : true,
			resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'destroy',
			maximizable: true,
			items : [this.FormImpactoItemAdelanteModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormImpactoItemAdelanteModal.show();
		
	},
	
	
	
	//agregado por Victor
	RelacionesRecordSelect: function(){
		registroSeleccionado = this.grid.getSelectionModel().getSelection()[0].data.idItem;
		nombreItem = this.grid.getSelectionModel().getSelection()[0].data.nombreItem;
		var cls = "App.view.Relaciones";
		var id = 'Relaciones' + registroSeleccionado;
		
		this.tabs = Ext.getCmp('tabsGlobales');
		var tab = this.tabs.child('#' + id);
		
		if(!tab){
			
			//revisamos que al menos tanga permiso para ver items
			Ext.Ajax.request(
			{
				url:'/autorizacion/tabRelaciones',
				method:'GET',
				scope : this,
				async    : false,
				params:
				{
					idFase:this.myIdFase	
				},
				callback : function(opts, success, response) {	
					obj = Ext.decode(response.responseText);
					this.respuesta = obj.respuesta;
					
				}
				
			});
			
			if(this.respuesta == true){
				
				//setemamos el valor de la variable idFase
				/*idFaseAux = registroSeleccionado;
				nombreProyectoAux = this.myNombreProyectoAux*/
				idItemAux = registroSeleccionado;
				nombreItemAux = nombreItem;
				idFaseAux = this.myIdFase;
				nombreFaseAux = this.myNombreFase;
				//Ext.Msg.alert('Entre en el if de !tab');
				tab = this.tabs.add(Ext.create(cls, {
					itemId: id,
					title: 'Relaciones | ' + nombreItem,//node.raw.text,
					closable: true
				}));	
				this.tabs.setActiveTab(tab)
			}else{
				Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "No posee Roles para el Proyecto Seleccionado!",
							buttons : Ext.MessageBox.OK,
							//icon : Ext.MessageBox.ERROR,
							width : 400
				});	
			}
			
		}else{
			this.tabs.setActiveTab(tab)
		}
		
		
	},
	
	
	AprobarRevisionItemRecordSelect: function(){
		
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea Aprobar la Revisión del Item?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.PersistirAprobacionRevisionItem,
			width : 400
		});
		
		
	},
	
	
	PersistirAprobacionRevisionItem: function(btn){
		if (btn == 'yes') { //btn=='yes'
			
			itemSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
			Ext.Ajax.request({
				url : '/items/aprobarRevision', 
				method : 'POST',
				scope : this,
				params : {
					idItem : itemSeleccionado.idItem
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
						this.store.load(
							{
								params:
								{
									idFase: this.myIdFase,
								}
							}
						);
						/*Ext.getCmp('btn_grid_confirmar_item').setDisabled(true);
						
							//this.WindowAdmUsuarios.el.unmask();
						}*/
					}	
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}
	},
	
	
	
	//rechazar revision de item
	RechazarRevisionItemRecordSelect: function(){
		
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea marcar para modificación al Item?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.PersistirRechazoRevisionItem,
			width : 400
		});
		
		
	},
	
	
	PersistirRechazoRevisionItem: function(btn){
		if (btn == 'yes') { //btn=='yes'
			
			itemSeleccionado = this.grid.getSelectionModel().getSelection()[0].data;
			Ext.Ajax.request({
				url : '/items/rechazarRevision', 
				method : 'POST',
				scope : this,
				params : {
					idItem : itemSeleccionado.idItem
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
						this.store.load(
							{
								params:
								{
									idFase: this.myIdFase,
								}
							}
						);
						/*Ext.getCmp('btn_grid_confirmar_item').setDisabled(true);
						
							//this.WindowAdmUsuarios.el.unmask();
						}*/
					}	
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}
	},
	
	
	
});


